我有以下句子
"my hooorrrr sssee strongggg"
我的正则表达式是:
"(h+o+r+s+e+) s+t+r+o+n+g+"
当句子为:
时,它才有效/匹配"my hooorrrrsssee strongggg"
任何人都能提供帮助吗?
无论单词之间的空格如何,我都希望匹配。
example : "my h ooo rrr rss se eee stttro ngggg"
另一个问题是当某个字符被数字替换时,如下:
"my h 0o0 rrr rs555sss se ee333 stttr0 ngggg"
a replaced by 4
b replaced by 8
s replaced by 5
i replaced by 1
o replaced by 0
任何人都能提供帮助吗?
由于
答案 0 :(得分:5)
使用*
(空格,星号)来允许可选空格。
(h[h ]*o[o ]*r[r ]*s[s ]*e[e ]*)s[s ]*t[t ]*r[r ]*o[o ]*n[n ]*g[g ]*
您可能还想考虑将任何空格与\s
(例如包括标签)匹配,而不仅仅是空格。
要允许数字或字母使用字符类,例如[0o]
。
(h[h ]*[o0][o0 ]*r[r ]*[s5][s5 ]*[e3][e3 ]*)[s5][s5 ]*t[t ]*r[r ]*[o0][o0 ]*n[n ]*g[g ]*
答案 1 :(得分:1)
如果要匹配空格,则需要在正则表达式中包含该空格。 \s
是匹配空白字符(即空格,制表符,换行符)的模式。
r+
将匹配一个或多个r
字符,但不会查找空格。
r+\s*
匹配一个或多个r
个字符,后跟零个或多个空白字符。
您可以从那里构建表达式的其余部分。
答案 2 :(得分:1)
更新2 :
根据您问题中的信息,您可以使用(更新以了解Tim Pietzcker指出的案例!):
[h][h ]*[o0][o 0]*[r][r ]*[s][s 5]*[e3][e 3]*[s5][s 5]*[t][t ]*[r][r ]*[o0][o 0]*[n][n ]*[g][g ]*
我只是意识到这使得答案与马克拜尔斯的答案相同!
答案 3 :(得分:1)
这匹配每个字母,后跟零个或多个相同的字母或空格
h[h ]*o[o ]*r[r ]*s[s ]*e[e ]*s[s ]*t[t ]*r[r ]*o[o ]*n[n ]*g[g ]*
使用您指定的数字...(e = 3,o = 0,s = 5)
h[h ]*[o0][o 0]*r[r ]*[s5][s 5]*e[e 3]*[s5][s 5]*t[t ]*r[r ]*[o0][o 0]*n[n ]*g[g ]*