使用RegEx删除开始和结束模式
问题描述:
我需要解析此字符串。我需要从中提取"nabcn"
。空格和"\n"
是随机的,可以按任意顺序排列。注意:"\n"
是文本不能转义的字符。使用RegEx删除开始和结束模式
"nabcn"
可以有任何字符,包括换行符。我的要求是在所需文本前后不要有空格和"\n"
字符串的组合。
这是我想出了:
(?=[^\s(?:\\n)])((?:(?:.|\n)*)?)(?<=[^\s(?:\\n)])
这工作,但问题是它发现只有“ABC”。
答
(?:\\n)(\w+)
这应该捕捉1组nabcn
可以在上面下的“详细信息”的链接Regexr看到这个。
第一个parenentheses指定一个非捕获组寻找\n
,第二个寻找单词\w
贪婪。
+0
仅适用于此特定所需文本。尝试在nabcn之间添加一些空格和“\ n”。例如 - \ n \t \t \ n \ nna \ n bcn \ n \ n 只给了我'na'。它应该提取'na \ n bcn' – yuva
答
这工作:
(n)(?:\s|\\n)*(a)(?:\s|\\n)*(b)(?:\s|\\n)*(c)(?:\s|\\n)*(n)
测试:
\n \nnabcn \n \n
https://regex101.com/r/SPH5mI/1
\n \n\n n\n\n\n\nab c\n\n\n\nn \n \n
https://regex101.com/r/ezUGes/1
,因为它创造尽可能多克因为“nabcn”中有字符(what does that word mean anyway?),因此检索该单词只需获得组$1$2$3$4$5
。
为什么不从输入中删除所有的空格和'\ n'? – anubhava