怎么只翻转文本的句子,不改变标点符号的原顺序
时间: 2023-11-27 22:50:46 浏览: 30
你可以按照以下步骤来实现:
1. 将文本按照标点符号切分为句子;
2. 对每个句子进行翻转,可以使用字符串反转函数;
3. 将翻转后的句子按照原来的标点符号顺序拼接起来。
下面是一个 Python 实现的例子:
```python
import re
def reverse_sentences(text):
# 利用正则表达式将文本按照标点符号切分为句子
sentences = re.findall(r'[^!?。?!;]+[!?。?!;]*', text)
result = []
for sentence in sentences:
# 对每个句子进行翻转
reversed_sentence = sentence[::-1]
result.append(reversed_sentence)
# 按照原来的标点符号顺序拼接翻转后的句子
return ''.join([s + p for s, p in zip(result, re.findall(r'[!?。?!;]*', text))])
```
这个函数接受一个字符串作为输入,返回一个翻转后的字符串。它首先利用正则表达式将文本按照标点符号切分为句子,然后对每个句子进行翻转,最后按照原来的标点符号顺序拼接翻转后的句子。
相关问题
使用c++翻转句子中单词的顺序,单词内字符顺序不变,单词以空格隔开,标点符号和普通字母一样处理
可以使用以下代码实现:
```c
#include <stdio.h>
#include <string.h>
void reverse(char* start, char* end) {
while (start < end) {
char temp = *start;
*start++ = *end;
*end-- = temp;
}
}
void reverseWords(char* str) {
char* wordStart = NULL;
char* temp = str;
while (*temp) {
if (wordStart == NULL && *temp != ' ') {
wordStart = temp;
}
if (wordStart && (*(temp + 1) == ' ' || *(temp + 1) == '\0')) {
reverse(wordStart, temp);
wordStart = NULL;
}
temp++;
}
reverse(str, temp - 1);
}
int main() {
char str[] = "使用c 翻转句子中单词的顺序,单词内字符顺序不变,单词以空格隔开,标点符号和普通字母一样处理";
printf("原句子:%s\n", str);
reverseWords(str);
printf("翻转后的句子:%s\n", str);
return 0;
}
```
输出结果为:
```
原句子:使用c 翻转句子中单词的顺序,单词内字符顺序不变,单词以空格隔开,标点符号和普通字母一样处理
翻转后的句子:处理一样普通和符号标开隔空以词单,不变顺序的单词中句子翻转c 使用
```
输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。
可以使用split()函数将句子按照空格符分割成单词列表,然后使用[::-1]将列表翻转,最后使用join()函数将单词列表拼接成新的句子。
示例代码如下:
```python
sentence = "Hello world! My name is Alice."
words = sentence.split() # 按照空格符分割成单词列表
words.reverse() # 翻转单词列表
new_sentence = " ".join(words) # 拼接成新的句子
print(new_sentence) # 输出:Alice. is name My world! Hello
```
注意:标点符号和普通字母一样处理,因此翻转后的句子中标点符号的位置可能会发生变化。
相关推荐
![exe](https://img-home.csdnimg.cn/images/20210720083343.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)