用于从字符串中删除除“a”和“i”之外的所有单个字母的 Java 正则表达式 [关闭]
Posted
技术标签:
【中文标题】用于从字符串中删除除“a”和“i”之外的所有单个字母的 Java 正则表达式 [关闭]【英文标题】:Java regex for removing all single letters except "a" and "i" from string [closed] 【发布时间】:2018-06-14 15:12:57 【问题描述】:我有一个像
这样的文本字符串"there i r u w want to y z go because f g of a matter"
我想删除除“a”和“i”之外的所有单个字母。 所以上面给出的示例字符串就像
“there i want to go because of a matter
”
除去“a”和“i”之外的所有这些单个字母的java正则表达式是什么?
【问题讨论】:
这个\b[b-hj-z]
或` [b-hj-z](?= )`?
我不知道,我想用正则表达式替换所有
我投了反对票,因为“给我 teh codez”/“为我做我的工作。”
【参考方案1】:
代码
See regex in use here
(?:^| )[b-hj-z](?= |$)
用法
See code in use here
import java.util.regex.Matcher;
import java.util.regex.Pattern;
class Ideone
public static void main (String[] args) throws java.lang.Exception
final String regex = "(?:^| )[b-hj-z](?= |$)";
final String string = "there i r u w want to y z go because f g of a matter";
final String subst = "";
final Pattern pattern = Pattern.compile(regex);
final Matcher matcher = pattern.matcher(string);
// The substituted value will be contained in the result variable
final String result = matcher.replaceAll(subst);
System.out.println("Substitution result: " + result);
如果您需要不区分大小写的匹配,请将Pattern.CASE_INSENSITIVE
传递给Patter.compile
。
结果
输入
there i r u w want to y z go because f g of a matter
输出
there i want to go because of a matter
说明
(?:^| )
在行首声明位置或匹配空格
[b-hj-z]
匹配除a
或i
之外的任何小写ASCII 字母
(?= |$)
正向前瞻确保后面是空格或行尾
【讨论】:
哇,是的,它有效,非常感谢你:) @zoric99 你可以接受它作为答案:)【参考方案2】:删除除“a”和“i”之外的所有单个字母的工作示例代码
String resultStr = "there i r u w want to y z go because f g of a matter".replaceAll("(?:^| )[b-hj-z | B-HJ-Z](?= |$)", "");
解释:
【讨论】:
以上是关于用于从字符串中删除除“a”和“i”之外的所有单个字母的 Java 正则表达式 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
从字符串中删除非数字字符(不包括句点和逗号)(即删除除数字、逗号和句点之外的所有字符)
如何从字符串中删除除字母、数字、空格、感叹号和问号之外的所有内容?
如何从python中的unicode字符串中删除除数字和“,”之外的所有字符?