繁体   English   中英

用于字符串的正则表达式包含

[英]Regex for String contains

我需要知道给定的字符串是否包含任何字符*.=,? : 我尝试过(使用str.contains ):

  • [*?=:]
  • [^*?=:]
  • ^[*?=:]

他们似乎都不起作用。

有人可以让我知道正则表达式吗?

contains不使用正则表达式,而是一个简单的String作为参数。 因此,在您的示例中,它将在字符串中查找以下确切的字符序列: [*?=:]

您可以改用String.matches

str.matches(".*[*.=,?:]+.*");

String.contains搜索指定的字符序列-它不使用正则表达式。 而是使用:

s.matches(".*[*.=,?:].*")

这匹配由任何字符组成的任何字符串,后跟您提到的一个字符,然后是任何字符。

方法java.lang.String.contains(CharSequence)不支持正则表达式。 您必须创建自己的小助手方法。

要检查字符串是否包含与某个正则表达式匹配的子字符串,可以使用如下方法:

/**
 * Checks if the given string contains a substring that matches the given
 * regex.
 */
public boolean checkStringContainsStringMatchingRegex(String pString, String pRegex) {
    return Pattern.compile(pRegex).matcher(pString).find();
}

java.lang.String.matches(String)区别:

  • String.matches(String)检查字符串是否匹配给定的正则表达式
  • checkStringContainsStringMatchingRegex(String, String)检查字符串(第一个参数)是否包含与正则表达式(第二个参数)匹配的子字符串。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM