cuốn sách gpt4 ai đã làm

Phân biệt các giá trị tương tự dựa trên vị trí biểu thức chính quy

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-04 03:56:27 25 4
mua khóa gpt4 Nike

Đây là vấn đề của tôi: Tôi đang làm việc trên một loạt biểu thức chính quy để phân tích các thuộc tính phông chữ cho mã css tốc ký. Đây là những gì tôi có hiện tại:

var style = decl.val.match(/\s*(?:\s*(normal|italic|oblique)){1}/i style = style[1] : "";
biến thể var = decl.val.match(/\s*(?:\s*(bình thường|mũ nhỏ))/i); biến thể = biến thể [1] : "";
var trọng lượng = decl.val.match(/\s*((?:\s*(?:normal|bold|bolder|lighter|\d+(?:\%|in|cm|mm|em|rem|ex |pt|pc|px))){1})/i); trọng lượng = trọng lượng [1] : "";
var size = decl.val.match(/\/\s*(((?:\s*(?:xx-small|x-small|small|medium|large|x-large|xx-large|larger| nhỏ hơn |\d+(?:\%|in|cm|mm|em|rem|ex|pt|pc|px))){1,2})/i); kích thước = kích thước [1] : " " ;
var chiều cao = decl.val.match(/\s*(?:\s*(normal|inherit|\d+(?:\%|in|cm|mm|em|rem|ex|pt|pc|px) )){1}/i); chiều cao = chiều cao ? chiều cao[1] : "";
var family = decl.val.match(/\s*(?:\s*([a-zA-Z\-\,\'\"\s]+))(?:,|;)/i) ; gia đình = gia đình ?
giá trị var = decl.val.match(/\s*(?:\s*(caption|icon|menu|message-box|small-caption|status-bar)){1}/i); ​= giá trị ? giá trị [1] : "";

Mọi thứ hoạt động theo cách tôi muốn, ngoại trừ khi tôi cố gắng sử dụng chuỗi sau:

phông chữ: chữ hoa nhỏ bình thường 120%/120% fantasy, sans-serif;

Điều này khiến cho tất cả các giá trị kiểu dáng, biến thể, trọng lượng và chiều cao đều được đặt thành bình thường:

phong cách --> "bình thường"
biến thể --> "bình thường"
cân nặng --> "bình thường"
chiều cao --> "bình thường"

Điều này là do biểu thức chính quy khớp với phiên bản đầu tiên trong mọi trường hợp và không kiểm tra để đảm bảo rằng không có giá trị nào khác cần lấy. nên là:

phong cách --> "bình thường"
biến thể --> "mũ nhỏ"
trọng lượng --> "120%"
chiều cao -->

Tôi hy vọng điều này có ý nghĩa. Nếu bạn có bất kỳ câu hỏi nào, xin vui lòng để lại nhận xét. Cảm ơn sự giúp đỡ của bạn!

câu trả lời hay nhất

Có điều gì đó không ổn với dấu gạch chéo về phía trước giữa trọng lượng và kích thước.
Nhưng tốt hơn hết bạn nên kết hợp nó thành một biểu thức chính quy để tạo ngoại trừ
Mọi thứ bên ngoài neo đều là tùy chọn. Điều này sẽ sắp xếp mọi thứ và bạn sẽ không kết thúc với "bình thường"
trên hầu hết các biến.

biên tập Theo trích dẫn nàyhttp://www.w3schools.com/cssref/pr_font_font.asp
Đây là cách họ phân tích các thuộc tính tốc ký phông chữ CSS.

chỉnh sửa2 Điều chỉnh dấu phân cách không gian cứng sau các phần tùy chọn và giữa các phần bắt buộc.

 # /(?:(?:(bình thường|nghiêng|xiên|ban đầu|kế thừa)\s+)?(?:(bình thường|chữ hoa nhỏ|ban đầu|kế thừa)\s+)?(?:((?:bình thường|đậm |đậm hơn|nhẹ nhàng hơn|trong itial|kế thừa|\d+))\s+)?(?:(nhỏ|nhỏ|x-nhỏ|xx-nhỏ|trung bình|lớn|lớn|x-lớn|xx-lớn|ban đầu|kế thừa|\d+(? :\%|in|cm|mm|e m|rem|ex|pt|pc|px))(?:\/(bình thường|ban đầu|kế thừa|\d+(?:\%|in|cm|mm|em|rem|ex|pt|pc|px )))?\s+)(?:(initial|inherit|(?:"[^"]*"|'[^']*' |[a-zA-Z-]+)(?:\s*,\s*(?:"[^"]*"|'[^']*'|[a-zA-Z-]+) )*))|(chú thích|icon|menu|hộp thông báo|chú thích nhỏ|thanh trạng thái|ban đầu|kế thừa))/

#### CSS - Thuộc tính viết tắt phông chữ

####--------------------------------
#### phông chữ:

(?:
#### Phông chữ do người dùng xác định
#### ------------------

##### Kiểu (tùy chọn)
(?:
( # (1 lần bắt đầu), Kiểu
Bình thường
|
xiên |
| ban đầu
kế thừa |
) # (1 đầu)
\s+ # dấu phân cách
)?

##### Biến thể (tùy chọn)
(?:
( # (bắt đầu 2), Biến thể
Bình thường
|
| ban đầu
kế thừa |
) # (2 đầu)
\s+ # dấu phân cách
)?

##### Trọng lượng (tùy chọn)
(?:
( # (bắt đầu 3), Trọng lượng
(?:
Bình thường
đậm |
| táo bạo hơn
nhẹ hơn |
| ban đầu
kế thừa |
|
)
) # (3 đầu)
\s+ # dấu phân cách
)?

##### Kích thước (bắt buộc)
(?:
( # (4 bắt đầu), Kích thước
nhỏ hơn
| nhỏ
| x-nhỏ
|xx-nhỏ
trung bình |
| lớn hơn
| lớn
|
|xx-lớn
| ban đầu
kế thừa |
|
(?: \% | in | cm | mm | em | rem | ex | pt | pc | px )
) # (4 đầu)

##### Chiều cao dòng (tùy chọn)
(?:
/ # Dấu phân cách
( # (bắt đầu 5), Chiều cao dòng
Bình thường
| ban đầu
kế thừa |
|
(?: \% | in | cm | mm | em | rem | ex | pt | pc | px )
) # (5 kết thúc)

)?

\s+ # dấu phân cách
)

##### Gia đình (bắt buộc)
(?:
( # (bắt đầu 6), Gia đình
ban đầu
kế thừa |
| (?: " [^"]* " | ' [^']* ' | [a-zA-Z-]+ )
(?:
\s* , \s*
(?: " [^"]* " | ' [^']* ' | [a-zA-Z-]+ )
)*
) # (6 đầu)
)

|

#### HOẶC,
#### Sử dụng Phông chữ được sử dụng bởi các thành phần hệ điều hành này
#### ------------------

#### Giá trị (bắt buộc, nếu được sử dụng)
( # (bắt đầu 7), Sử dụng giá trị
đầu đề
biểu tượng |
thực đơn |
hộp tin nhắn |
| chú thích nhỏ
thanh trạng thái |
| ban đầu
kế thừa |
) # (7 kết thúc)
)

Các trường hợp thử nghiệm Perl

$str = 'font:chữ hoa nhỏ bình thường 120%/120% "Times New Roman", sans-serif;';

nếu ( $str =~ /(?:(?:(bình thường|nghiêng|xiên|ban đầu|kế thừa)\s+)?(?:(bình thường|chữ hoa nhỏ|ban đầu|kế thừa)\s+)?(?:((?:bình thường|đậm |đậm hơn|nhẹ nhàng hơn|trong itial|kế thừa|\d+))\s+)?(?:(nhỏ|nhỏ|x-nhỏ|xx-nhỏ|trung bình|lớn|lớn|x-lớn|xx-lớn|ban đầu|kế thừa|\d+(? :\%|in|cm|mm|e m|rem|ex|pt|pc|px))(?:\/(bình thường|ban đầu|kế thừa|\d+(?:\%|in|cm|mm|em|rem|ex|pt|pc|px )))?\s+)(?:(initial|inherit|(?:"[^"]*"|'[^']*'| [a-zA-Z-]+)(?:\s*,\s*(?:"[^"]*"|'[^']*'|[a-zA-Z-]+)) *))|(chú thích|icon|menu|hộp thông báo|chú thích nhỏ|thanh trạng thái|ban đầu|kế thừa))/)
{
print "\nmatched '$&'\n\n";
print "style = '$1'\n";
in "biến thể = '$2'\n";
print "trọng lượng = '$3'\n";
print "size = '$4'\n";
in "chiều cao = '$5'\n";
in "gia đình = '$6'\n";
print "giá trị = '$7'\n";
}

Đầu ra >>

khớp với 'chữ viết hoa nhỏ thông thường 120%/120% "Times New Roman", sans-serif'

phong cách = 'bình thường'
biến thể = 'mũ nhỏ'
trọng lượng = ''
kích thước = '120%'
chiều cao = '120%'
family = '"Time New Roman", sans-serif'
giá trị = ''

Về javascript - phân biệt các giá trị tương tự dựa trên vị trí biểu thức chính quy, chúng tôi tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/22736047/

25 4 0
không gian vũ trụ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress