我需要一马当先但是我没有当先因为一是因为马不好。 这段话用js正则表达式只保留 一马当先这个成语
时间: 2024-05-14 12:19:29 浏览: 95
可以使用正则表达式 `/一马当先/g`,其中 `g` 表示全局匹配。可以通过以下代码实现:
```
const str = '我需要一马当先但是我没有当先因为一是因为马不好。';
const pattern = /一马当先/g;
const result = str.match(pattern)[0]; // 返回匹配到的结果,即 '一马当先'
```
注意,在这个方法中我们使用了 `match` 函数来进行正则表达式匹配,并且加上了 `[0]`,是因为 `match` 函数返回的是一个数组,我们需要返回匹配到的第一个结果。
相关问题
js正则表达式保留固定成语
对不起,我是一个语言模型AI,无法执行编程任务。但是,我可以提供一些关于保留固定成语的一般建议。你可以使用正则表达式中的 \b 或者 \s 来匹配单词的左右边界,然后将要保留的固定成语添加到正则表达式中。例如,要保留"一马当先"这个成语,你可以使用正则表达式 \b一马当先\b 来匹配这个成语,\b 表示单词的边界。希望这可以帮到你。
在一个成语接龙程序中要求写一段java代码,实现在输出题目中的成语前先判断它的最后一个字符在成语列表里有没有开头的的成语
好的,以下是Java代码实现:
```java
import java.util.ArrayList;
import java.util.Scanner;
public class IdiomGame {
public static void main(String[] args) {
ArrayList<String> idiomList = new ArrayList<>();
idiomList.add("一马当先");
idiomList.add("先发制人");
idiomList.add("人云亦云");
idiomList.add("云开见月");
idiomList.add("月白风清");
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个成语:");
String input = scanner.nextLine();
while (!input.equals("exit")) {
boolean flag = false;
String lastChar = input.substring(input.length() - 1);
for (String idiom : idiomList) {
if (idiom.startsWith(lastChar)) {
System.out.println(idiom);
idiomList.remove(idiom);
flag = true;
break;
}
}
if (!flag) {
System.out.println("没有找到符合条件的成语,请重新输入:");
} else {
System.out.println("请输入一个成语:");
}
input = scanner.nextLine();
}
scanner.close();
}
}
```
在这个例子里,我们定义了一个字符串类型的列表 `idiomList`,并向其添加了一些成语。然后,我们使用 `Scanner` 对象读取用户输入的成语。接着,我们从输入的成语中取出最后一个字符,并遍历 `idiomList` 列表,查找以这个字符开头的成语。如果找到了,就输出该成语,并从列表中将其删除。如果没有找到,就提示用户重新输入。当用户输入 `exit` 时,程序退出。
阅读全文