当前位置: 首页 > 知识库问答 >
问题:

如何编写匹配括号内某个字符的正则表达式?

孙凌龙
2023-03-14

所以我有一个像这样的字符串,

(name|address)
([name|address])
[name|address]

所以我想检查“|”字符并忽略它是否在括号中,就像我在示例中显示的那样。

我添加了这个正则表达式,但它并没有捕获我描述的所有场景。

\\|(?![^(]*\\))

编辑:

如果我有这样的绳子,

大家好,|早上好[姓名|地址]|

然后,我将字符串按字符断开。但我不想在断开字符串时考虑括号内的字符。

共有1个答案

郑哲彦
2023-03-14

您可以使用

java prettyprint-override">String pat = "\\|(?![^\\]\\[]*])";
String[] arr = "|Hello all, | morning [name|address] |".split(pat);

请参阅regex演示。

细节:

  • \|-管道字符
  • (?![ ^\]\[]*])-如果除了[and]]之外,还有一个]char之外的零个或多个字符,则会导致匹配失败。

请注意,在Android、Java、ICU正则表达式风格中,[]都必须在字符类中转义。

 类似资料:
  • 上面的正则表达式返回括号之间的文本。 如: 如何重写上面的正则表达式,所以我提供了一个类似的字符串,它将返回。i、 e带括号的部分,其中包含大括号中的字符串。

  • 问题内容: 匹配字符串中的’(’的正则表达式是什么? 以下是场景: 我有一串 我想使用正则表达式拆分字符串。为此,我正在使用 但是我收到以下异常。 转义似乎不起作用。 问题答案: 两种选择: 首先,你可以使用转义 回 斜线- 另外,由于它是单个字符,因此您可以将其放入不需要转义的字符类中-

  • 问题内容: 我正在尝试编写一个匹配嵌套括号的正则表达式,例如: 这样的字符串应该匹配,导致所有嵌套括号都被关闭,而是: 不应该或更好地至少匹配第一个“(((text)))(text)”部分。 实际上,我的正则表达式是: 但这并不能像我期望的那样正常工作。如何解决?我哪里错了?谢谢! 问题答案: 当我找到此答案时,我无法弄清楚如何修改模式以使用自己的定界符where 和。所以我的方法是使其更通用。

  • 我正在使用这段代码使用正则表达式拆分字符串 该代码适用于我拥有的几乎所有字符串,但我面临着这两个字符串的问题:和。似乎模式不匹配,我认为是因为特殊字符和。 我的预期结果和。

  • 我有这样一个文本: 我试图在c#中使用正则表达式来提取嵌套的if/eles-段。 要查找“?”,我使用了: 模式1: 找到“:”我用了: 模式2:

  • 本文向大家介绍正则表达式匹配括号外的符号及数据,包括了正则表达式匹配括号外的符号及数据的使用技巧和注意事项,需要的朋友参考一下 正则表达式匹配括号外的符号 [\\?!/\\.,\\s]+(?=[^\\)]*(\\(|$)) 将括号外的?!/.,和空格(连续多个时同时)匹配 如 结果: sdfsdf sdlfksd sdf fsdf&sdf(s:1,g:1) sdfsd sdf sdfl asdf