🎉正则表达式:让代码像魔法一样运行!🌟
👀场景一:清理乱码字符串
```python
import re
text = "Hello World! This is a test."
pattern = r'\b\w+\b'
matches = re.findall(pattern, text)
print(matches) ['Hello', 'World', 'This', 'is', 'a', 'test']
```
🔍场景二:查找电话号码
```python
import re
phone_number = "My phone number is (123)456-7890"
pattern = r'(\(\d{3}\)\d{3}-\d{4})'
match = re.search(pattern, phone_number)
if match:
print(match.group(0)) (123)456-7890
```
📱场景三:提取电子邮件地址
```python
email = "jane.doe@example.com"
pattern = r'[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}'
email_match = re.match(pattern, email)
if email_match:
print(email_match.group()) jane.doe@example.com
```
💻场景四:解析URL
```python
url = "https://www.example.com/path/to/resource?query=stringfragment"
pattern = r'(http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!\\(\\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+)'
link = re.findall(pattern, url)
print(link) ['https://www.example.com/path/to/resource?query=stringfragment']
```
📸场景五:识别图片链接
```python
image_link = "Check out this awesome image: "
pattern = r'https?:\/\/\S+'
image_url = re.search(pattern, image_link)
if image_url:
print(image_url.group())
```
🌈场景六:处理Markdown格式的文本
```python
markdown_text = " Hello\n World!\n This is a bold and italic sentence.\n Emojis: 😊😍💖"
pattern = r'(?This is a
sample paragraph."
pattern = r'<([^>]+)>'
new_html = re.sub(pattern, lambda m: '
' + m.group(1) + '', html_string)
print(new_html)
This is a sample paragraph.
```
🎉场景十四:查找和替换XML元素
```python
xml_string = """
Hello!
"""
pattern = r'<([^>]+)\s+attr\s=\s"([^"])">'
new_xml = re.sub(pattern, r'<\1>\2\1>', xml_string)
print(new_xml)
Hello!
```
🎉场景十五:查找和替换JSON对象
```python
json_string = '{"name":"John","age":30,"city":"New York"}'
pattern = r'"([^"])"'
new_json = re.sub(pattern, lambda m: f'"{m.group(1)}"', json_string)
print(new_json) {"name":"John","age":30,"city":"New York"}
```
🎉场景十六:查找和替换CSS类选择器
```python
css_selector = ".active > .menu-item:hover"
pattern = r'.([\w-]+)'
class_selector = re.sub(pattern, lambda m: '.menu-' + m.group(1).lower(), css_selector)
print(class_selector) .active > .menu-item:hover
```
🎉场景十七:查找和替换SQL数据库表字段
```python
table_schema = """CREATE TABLE users (
id INT PRIMARY KEY,
name VARCHAR(255),
age INT,
email VARCHAR(255)
);"""
pattern = r'name VARCHAR\(255\)',
new_schema = re.sub(pattern, r'name VARCHAR(255)', table_schema)
print(new_schema) CREATE TABLE users (\n id INT PRIMARY KEY,\n name VARCHAR(255),\n age INT,\n email VARCHAR(255)\n);
```
🎉场景十八:查找和替换JavaScript函数参数
```python
js_function = "function greet(name, greeting='Hello') {\n console.log(greeting + ', ' + name);\n}"
pattern = r'"greeting"="(.?)"'
replaced_js = re.sub(pattern, r'"greeting":"' + js_function.replace('"greeting"', '').strip() + '"', js_function)
print(replaced_js) function greet(name, greeting='Hello') {\n console.log('Hello', name);\n}
```
🎉场景十九:查找和替换Python字典键值
```python
dict_example = {"key1": "value1", "key2": "value2"}
pattern = r'"\w+"'
replaced_dict = {k: re.sub(pattern, lambda m: f'"{m.group(0)}"', v) for k, v in dict_example.items()}
print(replaced_dict) {"key1": "value1", "key2": "value2"}
```
🎉场景二十:查找和替换Java常量字符串
```java
String constant = "constant_value";
pattern = r"'(.)'";
replaced_constant = re.sub(pattern, lambda m: "'" + m.group(1) + "'", constant);
System.out.println(replaced_constant); // constant_value
```
🎉场景二十一:查找和替换C++全局变量声明
```cpp
std::string global_var = "global value";
pattern = r'\"(.)\"";
replaced_global = std::regex_replace(global_var, std::regex(pattern), "\"$1\"");
cout << replaced_global; // "global value"
```
🎉场景二十二:查找和替换Swift结构体属性
```swift
struct Person {
var name: String
var age: Int
}
let person = Person(name: "John", age: 30)
let formatted_person = "\(person.name): \(person.age)"
pattern = r'\"(\w+)\": \"(.)\"'
replaced_struct = re.sub(pattern, lambda m: "\"$2\":\"$1\"", formatted_person)
print(replaced_struct) // John: 30
```
🎉场景二十三:查找和替换PHP变量
```php
```
🎉场景二十四:查找和替换Go语言包路径
```go
package main
import (
"fmt"
)
func main() {
fmt.Println("Hello, World!")
}
```
🎉场景二十五:查找和替换Ruby模块定义
```ruby
module MyModule
end
```
🎉场景二十六:查找和替换Scala类型注解
```scala
def greet(name: String): Unit = println(s"Hello, $name")
```
🎉场景二十七:查找和替换TypeScript接口定义
```typescript
interface User {
name: string;
age: number;
}
```
🎉场景二十八:查找和替换JavaScript箭头函数参数
```javascript
const arr = [1, 2, 3];
arr.map((x) => x 2);
```
🎉场景二十九:查找和替换Python类实例方法
```python
class MyClass:
def __init__(self, val):
self.val = val
def my_method(self):
return self.val 2
```
🎉场景三十:查找和替换Java异常信息
```java
public class ExceptionHandler {
public static void main(String[] args) throws IOException {
throw new IOException("An error occurred");
}
}
```