英文:
Regex replace text to tag html starts with character
问题
output:
需要将文本转换为HTML标记,如下所示:
input: p1: Question 1
output: <h3>Question 1</h3>
或者也可以这样:
input: question 1: ¿question 1?
output: <h3>¿question 1?</h3>
我不明白的细节是,我有以下的正则表达式规则。
([a-zA-Z])([1-9])(:)+(.*)?
我的结果是:
<h3> Question 1</h3>
question 1: ¿question 1?
- 在第一个示例中,我需要移除生成的空格,即在
<h3>
和Q
之间的空格。 - 在第二个示例中,它根本不起作用。
你能帮助我找出正则表达式规则中的问题吗?
英文:
I need to bring a text to html tag, like this:
input: p1: Question 1
output: <h3>Question 1</h3>
or also
input: question 1: ¿question 1?
output: <h3>¿question 1?</h3>
The detail that I don't get it, I have the following Regex rule.
([a-zA-Z])([1-9])(:)+(.*)?
and my result is:
<h3> Question 1</h3>
question 1: ¿question 1?
- In the first one I need to remove the space that is generated between
<h3>
and theQ
- In the second it doesn't work for me at all
Could you help me in what I am failing in the regex rule?
答案1
得分: 2
你可以使用一个捕获组,并使用\h*
匹配可选的水平空白字符。
在捕获组中,使用\S
至少匹配一个非空白字符。
[a-zA-Z]+\h*[1-9]:\h*(\S.*)
在替换中使用第一个捕获组的值:
<h3>$1</h3>
英文:
You can use a single capture group, and match optional horizontal whitespace chars with \h*
In the capture group, match at least a single non whitespace char with \S
[a-zA-Z]+\h*[1-9]:\h*(\S.*)
In the replacement use the value of group 1:
<h3>$1</h3>
答案2
得分: 0
正则表达式需要匹配问题编号之前的可选空格(以解决第二个问题),以及冒号之后的可选空格(以解决第一个问题)。
([a-zA-Z]+)\s*([1-9])(:)+\s*(.*)
在(.*)
后面不需要?
。因为.*
可以匹配零长度的字符串,所以不需要将其标记为可选的。
我不太确定为什么在(:)
后面有+
—— 你真的想允许类似Question 1:::::
这样的情况吗?
英文:
The regexp needs to match optional whitespace before the question number (to fix the second problem) and after the :
(to fix the first problem).
([a-zA-Z]+)\s*([1-9])(:)+\s*(.*)
There's no need for ?
after (.*)
. Since .*
matches a zero-length string, you don't need to mark it as optional.
I'm not really sure why you have +
after (:)
-- do you really want to allow something like Question 1:::::
?
答案3
得分: 0
The answer was, thanks to the user @User863
([a-zA-Z ])+([1-9])(:)+\s*(.*)
英文:
The answer was, thanks to the user @User863
([a-zA-Z ])+([1-9])(:)+\s*(.*)
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论