提问人:Hank K 提问时间:8/13/2021 最后编辑:John KugelmanHank K 更新时间:8/13/2021 访问量:66
查找以大写字母开头的括号内容?
Find contents of parentheses that start with UPPERCASE letter?
问:
我想抓取括号的内容,不包括括号。 然后在末尾添加冒号以及如下所示的字体项。
以前:(Woman 1), (Ki-Woo), (Drunk)
后:<font color="#FF4500"><b>Woman 1:</b></font>
这是我目前所拥有的:
找到:(\([A-Z]*(?:(\h*|-)[A-Z0-9][a-z]*)*\))
取代:\<font color\=\"\#FFA500\"\>\<b\>($1)\:\<\/b\>\<\/font\>
目前,我的仍然在“查找”中包含括号。
答:
0赞
The fourth bird
8/13/2021
#1
使用您尝试过的模式,可以将捕获组切换到括号的内部,并使第二个捕获组成为非捕获组。
然后在替换中使用组 1。
\(([A-Z]*(?:(?:\h*|-)[A-Z0-9][a-z]*)*)\)
若要不匹配空括号,可以将模式写成:
\(([A-Z][a-z]*(?:(?:\h*|-)[A-Z0-9][a-z]*)*)\)
\(
火柴(
(
捕获组 1[A-Z][a-z]*
匹配单个字符 A-Z 和可选字符 a-z(?:
非捕获组作为整个部分重复(?:\h*|-)
匹配 0+ 水平 whitspace 字符或单个字符-
[A-Z0-9][a-z]*
匹配单个字符 A-Z 和可选字符 a-z
)*
关闭并重复非捕获组 0+ 次
)
关闭组 1\)
火柴)
请注意,模式的这一部分可以匹配可选的水平空格字符或单个连字符,并且匹配但也可以匹配(?:\h*|-)
Ki Woo
KiWoo
在替换使用组 1 中使用$1
<font color="#FF4500"><b>$1</b></font>
评论
1赞
Hank K
8/13/2021
谢谢。。。非常感谢非常清晰的解释,绝对精彩......正是这个菜鸟需要的......再次 TY
0赞
Haji Rahmatullah
8/13/2021
#2
一如既往的短代码在下面,刚刚由我检查过,工作完美......
查找:全部替换: \(([\w \d-]*)\)
\<font color\=\"\#FFA500\"\>\<b\>$1\:\<\/b\>\<\/font\>
评论